Update Readme.md
[EroSomnia.git] / Point and Click Game1 / AnimationLibrary.h
blob03384a378a9e993f6ebb196d0c09921db3f65cfa
1 #pragma once
2 #include "Graphics.h"
4 #include <fstream>
5 #include <stdarg.h>
7 #include <boost\archive\binary_iarchive.hpp>
8 #include <boost\archive\binary_oarchive.hpp>
9 #include <boost\serialization/vector.hpp>
11 class AnimationLibrary {
13 friend class boost::serialization::access;
15 template<class Archive>
16 void serialize(Archive & ar, const unsigned int version) {
17 ar & idleAni;
19 ar & moAni;
20 ar & lPiAni;
21 ar & rPiAni;
22 ar & fiAni;
23 ar & haAni;
25 ar & eyesAni;
26 ar &felAni;
27 ar &masAni;
28 ar &noBreAni;
29 ar &breAni;
30 ar &thiAni;
32 ar & pokeFake;
33 ar & handFake;
36 public:
37 AnimationLibrary(Animation* n_args, ...) {
40 AnimationLibrary() {
44 void saveAnimationLibrary() {
45 std::fstream file;
46 file.open("data/ani.rave", std::ios::binary | std::fstream::out);
48 boost::archive::binary_oarchive archive(file);
49 archive << this;
50 file.close();
53 static AnimationLibrary loadAnimationLibrary() {
54 std::fstream file;
55 AnimationLibrary* al;
56 AnimationLibrary alCopy;
57 file.open("data/ani.rave", std::ios::binary | std::fstream::in);
58 if (file.is_open()) {
59 boost::archive::binary_iarchive archive(file);
60 archive >> al;
61 alCopy = *al;
63 else {
64 std::cout << "GAME ANIMATION DATA NOT FOUND";
65 al = new AnimationLibrary();
66 alCopy = *al;
68 file.close();
70 return alCopy;
73 Animation* moAni;
74 Animation* lPiAni;
75 Animation* rPiAni;
76 Animation* fiAni;
77 Animation* haAni;
79 Animation* eyesAni;
80 Animation* felAni;
81 Animation* masAni;
82 Animation* noBreAni;
83 Animation* breAni;
84 Animation* thiAni;
86 Animation* idleAni;
88 Texture* pokeFake;
89 Texture* handFake;
91 void clearLibrary() {
92 moAni->destroyAnimation();
93 idleAni->destroyAnimation();
94 pokeFake->clearTexture();
95 handFake->clearTexture();
97 lPiAni->destroyAnimation();
98 rPiAni->destroyAnimation();
99 fiAni->destroyAnimation();
100 haAni->destroyAnimation();
102 eyesAni->destroyAnimation();
103 felAni->destroyAnimation();
104 masAni->destroyAnimation();
105 noBreAni->destroyAnimation();
106 breAni->destroyAnimation();
107 thiAni->destroyAnimation();
110 void configureLibrary(SDL_Renderer* r, SDL_Window* w) {
111 moAni->loadFromByteArray(r, w);
112 lPiAni->loadFromByteArray(r, w);
113 rPiAni->loadFromByteArray(r, w);
114 fiAni->loadFromByteArray(r, w);
115 haAni->loadFromByteArray(r, w);
117 idleAni->loadFromByteArray(r, w);
118 pokeFake->loadFromByteArray(r, w);
119 handFake->loadFromByteArray(r, w);
121 eyesAni->loadFromByteArray(r, w);
122 felAni->loadFromByteArray(r, w);
123 masAni->loadFromByteArray(r, w);
124 noBreAni->loadFromByteArray(r, w);
125 breAni->loadFromByteArray(r, w);
126 thiAni->loadFromByteArray(r, w);
129 void configure1Third(SDL_Renderer* r, SDL_Window* w){
130 moAni->loadFromByteArray(r, w);
131 lPiAni->loadFromByteArray(r, w);
132 rPiAni->loadFromByteArray(r, w);
133 fiAni->loadFromByteArray(r, w);
134 haAni->loadFromByteArray(r, w);
137 void configure2Third(SDL_Renderer* r, SDL_Window* w) {
138 idleAni->loadFromByteArray(r, w);
139 pokeFake->loadFromByteArray(r, w);
140 handFake->loadFromByteArray(r, w);
141 eyesAni->loadFromByteArray(r, w);
142 felAni->loadFromByteArray(r, w);
144 void configure3Third(SDL_Renderer* r, SDL_Window* w) {
145 masAni->loadFromByteArray(r, w);
146 noBreAni->loadFromByteArray(r, w);
147 breAni->loadFromByteArray(r, w);
148 thiAni->loadFromByteArray(r, w);